//
// ���ļ����� JavaTM Architecture for XML Binding (JAXB) ����ʵ�� v2.2.8-b130911.1802 ���ɵ�
// ����� <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// �����±���Դģʽʱ, �Դ��ļ��������޸Ķ�����ʧ��
// ����ʱ��: 2018.04.04 ʱ�� 06:00:02 PM CST 
//


package com.youhome.entity;

import org.w3c.dom.Element;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
import java.util.List;


/**
 * <p>Address complex type�� Java �ࡣ
 * 
 * <p>����ģʽƬ��ָ�������ڴ����е�Ԥ�����ݡ�
 * 
 * <pre>
 * &lt;complexType name="Address">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="preference-order" type="{http://rets.org/xsd/RETSCommons}preferenceOrderType"/>
 *         &lt;element name="address-preference-order" type="{http://rets.org/xsd/RETSCommons}preferenceOrderType"/>
 *         &lt;element name="category" type="{http://rets.org/xsd/RETSCommons}AddressCategoryEnum" minOccurs="0"/>
 *         &lt;element name="FullStreetAddress" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;choice>
 *           &lt;sequence>
 *             &lt;element name="StreetNumber" type="{http://rets.org/xsd/RETSCommons}StreetNumberType" minOccurs="0"/>
 *             &lt;element name="StreetDirPrefix" type="{http://rets.org/xsd/RETSCommons}StreetDirPrefixType" minOccurs="0"/>
 *             &lt;element name="StreetName" type="{http://rets.org/xsd/RETSCommons}StreetNameType" minOccurs="0"/>
 *             &lt;element name="StreetSuffix" type="{http://rets.org/xsd/RETSCommons}StreetSuffixType" minOccurs="0"/>
 *             &lt;element name="StreetDirSuffix" type="{http://rets.org/xsd/RETSCommons}StreetDirSuffixType" minOccurs="0"/>
 *             &lt;element name="StreetAdditionalInfo" type="{http://rets.org/xsd/RETSCommons}StreetAdditionalInfoType" minOccurs="0"/>
 *           &lt;/sequence>
 *           &lt;element name="BoxNumber" type="{http://rets.org/xsd/RETSCommons}BoxNumberType" minOccurs="0"/>
 *         &lt;/choice>
 *         &lt;element name="UnitNumber" type="{http://rets.org/xsd/RETSCommons}UnitNumberType" minOccurs="0"/>
 *         &lt;element name="City" type="{http://rets.org/xsd/RETSCommons}CityType"/>
 *         &lt;element name="StateOrProvince" type="{http://rets.org/xsd/RETSCommons}StateOrProvinceType" minOccurs="0"/>
 *         &lt;element name="PostalCode" type="{http://rets.org/xsd/RETSCommons}PostalCodeType" minOccurs="0"/>
 *         &lt;element name="CarrierRoute" type="{http://rets.org/xsd/RETSCommons}CarrierRouteType" minOccurs="0"/>
 *         &lt;element name="Country" type="{http://rets.org/xsd/RETSCommons}CountryType" minOccurs="0"/>
 *         &lt;any processContents='lax' namespace='##other' maxOccurs="15" minOccurs="0"/>
 *       &lt;/sequence>
 *       &lt;attribute ref="{http://rets.org/xsd/RETSCommons}privacyType"/>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Address", propOrder = {
    "preferenceOrder",
    "addressPreferenceOrder",
    "category",
    "fullStreetAddress",
    "streetNumber",
    "streetDirPrefix",
    "streetName",
    "streetSuffix",
    "streetDirSuffix",
    "streetAdditionalInfo",
    "boxNumber",
    "unitNumber",
    "city",
    "stateOrProvince",
    "postalCode",
    "carrierRoute",
    "country",
    "any"
})
public class Address {

    @XmlElement(name = "preference-order")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected int preferenceOrder;
    @XmlElement(name = "address-preference-order")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected int addressPreferenceOrder;
    protected AddressCategoryEnum category;
    @XmlElement(name = "FullStreetAddress")
    protected String fullStreetAddress;
    @XmlElement(name = "StreetNumber")
    protected StreetNumberType streetNumber;
    @XmlElement(name = "StreetDirPrefix")
    protected StreetDirPrefixType streetDirPrefix;
    @XmlElement(name = "StreetName")
    protected StreetNameType streetName;
    @XmlElement(name = "StreetSuffix")
    protected StreetSuffixType streetSuffix;
    @XmlElement(name = "StreetDirSuffix")
    protected StreetDirSuffixType streetDirSuffix;
    @XmlElement(name = "StreetAdditionalInfo")
    protected StreetAdditionalInfoType streetAdditionalInfo;
    @XmlElement(name = "BoxNumber")
    protected BoxNumberType boxNumber;
    @XmlElement(name = "UnitNumber")
    protected UnitNumberType unitNumber;
    @XmlElement(name = "City", required = true)
    protected CityType city;
    @XmlElement(name = "StateOrProvince")
    protected StateOrProvinceType stateOrProvince;
    @XmlElement(name = "PostalCode")
    protected PostalCodeType postalCode;
    @XmlElement(name = "CarrierRoute")
    protected CarrierRouteType carrierRoute;
    @XmlElement(name = "Country")
    protected CountryType country;
    @XmlAnyElement(lax = true)
    protected List<Object> any;
    @XmlAttribute(name = "privacyType", namespace = "http://rets.org/xsd/RETSCommons")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    protected String privacyType;

    /**
     * ��ȡpreferenceOrder���Ե�ֵ��
     * 
     */
    public int getPreferenceOrder() {
        return preferenceOrder;
    }

    /**
     * ����preferenceOrder���Ե�ֵ��
     * 
     */
    public void setPreferenceOrder(int value) {
        this.preferenceOrder = value;
    }

    /**
     * ��ȡaddressPreferenceOrder���Ե�ֵ��
     * 
     */
    public int getAddressPreferenceOrder() {
        return addressPreferenceOrder;
    }

    /**
     * ����addressPreferenceOrder���Ե�ֵ��
     * 
     */
    public void setAddressPreferenceOrder(int value) {
        this.addressPreferenceOrder = value;
    }

    /**
     * ��ȡcategory���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link AddressCategoryEnum }
     *     
     */
    public AddressCategoryEnum getCategory() {
        return category;
    }

    /**
     * ����category���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link AddressCategoryEnum }
     *     
     */
    public void setCategory(AddressCategoryEnum value) {
        this.category = value;
    }

    /**
     * ��ȡfullStreetAddress���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getFullStreetAddress() {
        return fullStreetAddress;
    }

    /**
     * ����fullStreetAddress���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setFullStreetAddress(String value) {
        this.fullStreetAddress = value;
    }

    /**
     * ��ȡstreetNumber���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StreetNumberType }
     *     
     */
    public StreetNumberType getStreetNumber() {
        return streetNumber;
    }

    /**
     * ����streetNumber���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StreetNumberType }
     *     
     */
    public void setStreetNumber(StreetNumberType value) {
        this.streetNumber = value;
    }

    /**
     * ��ȡstreetDirPrefix���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StreetDirPrefixType }
     *     
     */
    public StreetDirPrefixType getStreetDirPrefix() {
        return streetDirPrefix;
    }

    /**
     * ����streetDirPrefix���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StreetDirPrefixType }
     *     
     */
    public void setStreetDirPrefix(StreetDirPrefixType value) {
        this.streetDirPrefix = value;
    }

    /**
     * ��ȡstreetName���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StreetNameType }
     *     
     */
    public StreetNameType getStreetName() {
        return streetName;
    }

    /**
     * ����streetName���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StreetNameType }
     *     
     */
    public void setStreetName(StreetNameType value) {
        this.streetName = value;
    }

    /**
     * ��ȡstreetSuffix���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StreetSuffixType }
     *     
     */
    public StreetSuffixType getStreetSuffix() {
        return streetSuffix;
    }

    /**
     * ����streetSuffix���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StreetSuffixType }
     *     
     */
    public void setStreetSuffix(StreetSuffixType value) {
        this.streetSuffix = value;
    }

    /**
     * ��ȡstreetDirSuffix���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StreetDirSuffixType }
     *     
     */
    public StreetDirSuffixType getStreetDirSuffix() {
        return streetDirSuffix;
    }

    /**
     * ����streetDirSuffix���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StreetDirSuffixType }
     *     
     */
    public void setStreetDirSuffix(StreetDirSuffixType value) {
        this.streetDirSuffix = value;
    }

    /**
     * ��ȡstreetAdditionalInfo���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StreetAdditionalInfoType }
     *     
     */
    public StreetAdditionalInfoType getStreetAdditionalInfo() {
        return streetAdditionalInfo;
    }

    /**
     * ����streetAdditionalInfo���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StreetAdditionalInfoType }
     *     
     */
    public void setStreetAdditionalInfo(StreetAdditionalInfoType value) {
        this.streetAdditionalInfo = value;
    }

    /**
     * ��ȡboxNumber���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link BoxNumberType }
     *     
     */
    public BoxNumberType getBoxNumber() {
        return boxNumber;
    }

    /**
     * ����boxNumber���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link BoxNumberType }
     *     
     */
    public void setBoxNumber(BoxNumberType value) {
        this.boxNumber = value;
    }

    /**
     * ��ȡunitNumber���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link UnitNumberType }
     *     
     */
    public UnitNumberType getUnitNumber() {
        return unitNumber;
    }

    /**
     * ����unitNumber���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link UnitNumberType }
     *     
     */
    public void setUnitNumber(UnitNumberType value) {
        this.unitNumber = value;
    }

    /**
     * ��ȡcity���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link CityType }
     *     
     */
    public CityType getCity() {
        return city;
    }

    /**
     * ����city���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link CityType }
     *     
     */
    public void setCity(CityType value) {
        this.city = value;
    }

    /**
     * ��ȡstateOrProvince���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link StateOrProvinceType }
     *     
     */
    public StateOrProvinceType getStateOrProvince() {
        return stateOrProvince;
    }

    /**
     * ����stateOrProvince���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link StateOrProvinceType }
     *     
     */
    public void setStateOrProvince(StateOrProvinceType value) {
        this.stateOrProvince = value;
    }

    /**
     * ��ȡpostalCode���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link PostalCodeType }
     *     
     */
    public PostalCodeType getPostalCode() {
        return postalCode;
    }

    /**
     * ����postalCode���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link PostalCodeType }
     *     
     */
    public void setPostalCode(PostalCodeType value) {
        this.postalCode = value;
    }

    /**
     * ��ȡcarrierRoute���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link CarrierRouteType }
     *     
     */
    public CarrierRouteType getCarrierRoute() {
        return carrierRoute;
    }

    /**
     * ����carrierRoute���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link CarrierRouteType }
     *     
     */
    public void setCarrierRoute(CarrierRouteType value) {
        this.carrierRoute = value;
    }

    /**
     * ��ȡcountry���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link CountryType }
     *     
     */
    public CountryType getCountry() {
        return country;
    }

    /**
     * ����country���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link CountryType }
     *     
     */
    public void setCountry(CountryType value) {
        this.country = value;
    }

    /**
     * Gets the value of the any property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the any property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAny().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Object }
     * {@link Element }
     * 
     * 
     */
    public List<Object> getAny() {
        if (any == null) {
            any = new ArrayList<Object>();
        }
        return this.any;
    }

    /**
     * 
     * 					The level of privacy for this address.
     * 				
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPrivacyType() {
        return privacyType;
    }

    /**
     * ����privacyType���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPrivacyType(String value) {
        this.privacyType = value;
    }

}
